package models

import (
	"gorm.io/gorm"
)

// AuthGroup 对应数据库表 auth_group
type AuthGroup struct {
	gorm.Model
	ID        uint   `gorm:"primaryKey;autoIncrement;comment:主键，自增ID"`
	Title     string `gorm:"not null;default:'';comment:角色名称"`
	Status    uint8  `gorm:"not null;default:1;comment:0状态：0禁用，1正常"`
	Rules     string `gorm:"comment:规则ID，多个规则\",\"隔开"`
	AppID     int    `gorm:"default:0;comment:数据归属"`
	CreatedAt int64  `gorm:"autoCreateTime;comment:创建时间戳"` // 修改为 int64 类型
	UpdatedAt int64  `gorm:"autoUpdateTime;comment:更新时间戳"` // 修改为 int64 类型
}

type AuthGroupList struct {
	ID        uint   `json:"id"`
	Title     string `json:"title"`
	Status    uint8  `json:"status"`
	Rules     string `json:"rules"`
	RulesIds  string `json:"rules_ids"`
	AppID     int    `json:"app_id"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

type AuthGroupCreate struct {
	Title  string `json:"title"`
	Status uint8  `json:"status"`
	Rules  string `json:"rules"`
	AppID  int    `json:"app_id"`
}

type AuthGroupUpdate struct {
	ID     uint   `json:"id"`
	Title  string `json:"title"`
	Status uint8  `json:"status"`
	Rules  string `json:"rules"`
	AppID  int    `json:"app_id"`
}

// TableName 设置表名为 auth_group
func (AuthGroup) TableName() string {
	return "auth_group"
}
